import { Stream } from "stream";
import { Artwork } from "./Artwork";
import { Chat } from "./Chat";
import { DBObject } from "./DBObject";
import User from "./User";
export enum PanelType {
  FIELDS = 1,
  GALLERY = 2,
  MARKDOWN = 3,
  CHAT = 4,
  USERS = 5,
  STREAM = 6
}
export enum PanelFieldType {
  TEXT = "text",
  DATE = "date",
  DATE_RANGE = "dateRange",
  TIME = "time",
  TIME_RANGE = "timeRange",
  ADDRESS = "address",
  TEXT_AREA = "textArea"
}
export class Panel extends DBObject {
  public index: number = 0;
  public title: string = "";
  public children: [] = [];
  public type: PanelType = PanelType.FIELDS;
  public color: string = "";
}
export class PanelField {
  public title: string = "";
  public value: string = "";
  public color: string = "";
  public icon: string = "";
}
export class FieldPanel extends Panel {
  public fields: PanelField[] = [];
}
export class GalleryPanel extends Panel {
  public artworks: Artwork[] = [];
}
export class MarkdownPanel extends Panel {
  public mdString: string = "";
  public mdUrl: string = "";
}
export class ChatPanel extends Panel {
  public chats: Chat[] = [];
}
export class UsersPanel extends Panel {
  public users: User[] = [];
}
export class StreamPanel extends Panel {
  public stream: Stream | null = null;
}
